#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtSerialPort> //串口通信
#include <QSerialPortInfo> //串口信息
#include <QtCharts> //图表模块

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private slots:
    //模块滑动事件处理
    void onSilderMoved(int position);
    //连接按钮点击事件处理
    void onConnectClicked();
    //串口错误处理
    void handleSerialError(QSerialPort::SerialPortError error);


private:
    Ui::MainWindow *ui;
    QSerialPort *serial; //串口对象指针

    //图表相关成员变量
    QChart *chart; // 图表对象，管理图表的整体显示
    QLineSeries *series; // 线系列对象，存储并显示数据点连成的线
    QValueAxis *axisX; // X轴对象，定义X轴的范围和属性
    QValueAxis *axisY; // Y轴对象，定义Y轴的范围和属性
    QElapsedTimer timer; // 计时器对象，用于记录数据采集时间
    int dataCount = 0; // 数据点计数器，记录已添加的数据点数量

    //初始化串口列表
    void initSerialPorts();
    // 初始化图表的成员函数，用于配置图表的初始状态
    void initchart();

};
#endif // MAINWINDOW_H
